#pragma once


#include <string>
#include <sstream>

#include "../SQLExprImpl.h"
#include "../statement/SQLSelect.h"
class SQLASTVisitor;

class SQLAllExpr : virtual public SQLExprImpl
{

public:
  SQLSelect_ptr subQuery;

public:
  SQLAllExpr();
  virtual ~SQLAllExpr();

  SQLAllExpr(SQLSelect_ptr select);
  SHAREDOBJECT(SQLAllExpr);

  SQLSelect_ptr getSubQuery();

  void setSubQuery(SQLSelect_ptr subQuery);

  void output(std::stringstream * buf);

  // int hashCode();
  // BOOL_ptr equals(Object obj);
protected:
  void accept0(SQLASTVisitor_ptr visitor);
};

